#ifndef _MALICEDRIVER_H_
#define _MALICEDRIVER_H_

#include <iostream>
#include <MAlice/Parser/MAliceParser.hpp>
#include <MAlice/Scanner/MAliceScanner.hpp>

namespace MAlice
{
class Ast;
class ListAst;
}

class MAliceDriver
{
private:
	MAlice::ListAst*     mExpr;
	vector<MAlice::Ast*> mFunc;
	string mFilename;

public:
	MAliceDriver(const std::string& filename);
	~MAliceDriver();

	MAliceDriver* newExpression(MAlice::Ast* expr);
	MAliceDriver* newFunction(MAlice::Ast* func);

	string& getFileName();

	MAlice::ListAst* get();
};

#endif /* _MALICEDRIVER_H_ */
